package control;

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Pagination;
import javafx.stage.Stage;
import javafx.util.Callback;
import javafx.scene.layout.*;

// 分页
public class PaginationDemo extends Application {
	private Pane root = new Pane();
	private Pagination pagination;
	
	public static void main(String[] args) {
		Application.launch(args);
	}
	
	@Override
	public void start(Stage stage) {
		
		pagination = new Pagination();
		pagination.setPageCount(10);	// 设置总页数（默认为无限）
		pagination.setMaxPageIndicatorCount(5);		// 设置同时显示多少个页指示器
		pagination.setCurrentPageIndex(3);	// 设置当前显示第几页，从0开始
		pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET);	// 改变页下标显示形状
		pagination.setStyle("-fx-background-color: pink; -fx-page-information-visible: false; -fx-arrows-visible: false");	// 隐藏页信息和方向箭头
		pagination.setPrefSize(300, 300); 
		
		// 设置每页的元素
		pagination.setPageFactory(new Callback<Integer, Node>() {
			@Override
			public Node call(Integer param) {
				if(param == 0) {								// 页下标
					return new Button("这是第" + (param+1) + "页");		// 注意添加节点的大小会影响页面指示器的位置
				} else {
						return new Button("这不是第一页");
				}
			}
		});
		root.getChildren().add(pagination);	
		
		Scene scene = new Scene(root, 400, 400);
		stage.setScene(scene);
		stage.setTitle("分页");
		stage.show();
		
		// 监听当前选择的页
		pagination.currentPageIndexProperty().addListener(e -> {
			System.out.println(pagination.getCurrentPageIndex());	// 打印当前选择的页下标
		});
	}
}





